Random-access memory (RAM) is generally a form of computer or digital data storage. Often, it takes the form of integrated circuits that allow stored data to be accessed in any order (i.e., at random). The word “random” thus refers to the fact that any piece of data can be returned in a substantially constant time, regardless of its physical location and whether or not it is related to the previous piece of data.
Low power, high switch capacity solutions are of great value to the data center market. An optimal approach to realizing high performance systems is to use a shared memory architecture in which multiple resources (e.g., ingress and egress ports, etc.) use a memory element that is shared among them. Achieving a shared memory architecture with high scalability and lower power in today's silicon technology, with cost effective process, is particularly challenging.
One frequently used approach to a shared memory architecture is to simply operate a single bank of memory at very high speeds. This approach is limited the frequency constraints associated with available manufacturing processes. Dual-port solutions that aim to reduce the frequency result in increased consumption of silicon area. Multiple bank solutions that reduce the frequency constraints often suffer read conflict issues that result in underutilization of the memory bandwidth. In addition, balancing write operations evenly can be a challenge. Failing to do so can result in underutilization of memory resources and poor flow control implementations.
A single-ported RAM is a RAM that allows a single read or write operation (colloquially referred to as a “read” or “write”) at a time. As a result if a read is occurring at the same time a write is attempted, the write is required to wait until the read operation is completed. A dual-ported RAM (DPRAM) is a type of RAM that allows two reads or writes to occur at the same time, or nearly the same time. Likewise, multi-ported RAMs may allow multiple reads and/or writes at the same time.
Generally, a dual-ported RAM is twice the size and complexity of a single ported RAM. As the number of read/write ports or exclusively read or exclusively write ports increase, the size of the RAM linearly increases. As such, the size of the RAM quickly becomes a design problem. Therefore, as described above, a RAM with a small number of ports (e.g., a single-ported RAM) may be operated at a much higher frequency than the surrounding chip or system in order to effectively service multiple reads and writes during a single system clock cycle. Once again, there is generally a limit upon the frequency the RAM may be operated.